﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;

namespace Duet.Web.Core.Supertypes
{
    /// <summary>
    /// Classe base para Master pages principais
    /// </summary>
    public abstract class MainMasterPage : System.Web.UI.MasterPage
    {
        /// <summary>
        ///     Obtém o <see cref="ScriptManager"/> principal
        ///     da página.
        /// </summary>
        /// <returns><see cref="ScriptManager"/> principal.</returns>
        public abstract ScriptManager GetMainScriptManager();

        /// <summary>
        ///     Adiciona caminhos de CSS à página.
        /// </summary>
        public abstract void WriteLinkCSSTag(string path);

        /// <summary>
        ///     Escreve caminhos de scripts na página.
        /// </summary>
        public abstract void WriteScriptTag(string path);

        /// <summary>
        ///     Adiciona caminhos de scripts à página.
        /// </summary>
        /// <param name="path">
        ///     Caminho relativo do script
        /// </param>
        /// <param name="isSubHeader">
        ///     Se o script deve ser adicionado no holder principal ou no subholder
        /// </param>
        public abstract void AddScriptTag(string path);

        /// <summary>
        ///  Exibe caixa de mensagens.
        /// </summary>
        /// <param name="message">Mensagem a ser exibida.</param>
        /// <param name="title">Titulo da caixa de mensagens.</param>
        /// <param name="encloseWithParagraph">Indica se é para colocar parágrafo ao redor do conteúdo.</param>
        public abstract void ShowMessageBox(string message, string title, bool encloseWithParagraph);
    }
}